﻿// this file contains all javascript manipulation for Role Management

function DoCreateOrEdit() {

    //Kiểm tra dữ liệu nhập
    
    //chưa nhập RoleName
    if ($("#RoleName").val() == "") {
        document.getElementById("RoleNameMessage").innerHTML = "Nhập role !";
        $("#RoleName").focus();
        return ;
    }

    //Kiểm tra Role đã tồn tại
    var url = basePath + 'Roles/IsExistRole?RoleName=' + $("#RoleName").val();
    $.getJSON(url, null, function(data) {
        if (data == true) {
            document.getElementById("RoleNameMessage").innerHTML = "Role đã tồn tại!";
            $("#RoleName").focus();
            return ;
        }
    });
    
    
    //RoleName nhập có ký tự đặc biệt
//    if (!ValidRoleName($("#RoleName").val())) {
//        document.getElementById("RoleNameMessage").innerHTML = "Role không đúng định dạng !";
//        $("#RoleName").focus();
//        return ;
//    }

    $("#RolesID").val($("#IdRole").val());

    if (document.forms[0].IdRole.value == -1) {
        document.RolesForm.action = basePath + "Roles/Create";
    }
    else {
        document.RolesForm.action = basePath + "Roles/Edit";
    }
    
    document.RolesForm.method = "post";
    document.RolesForm.submit();
}

//nhấn nút New
function NewAjax() {

    //Xóa hết thông điệp
    DoClearMessage();
    
    var url = basePath + "Roles/RolesNewAjax";

    $.getJSON(url, { t: (new Date()).getTime() }, function(data) {
        $("#CreateBy").val(data[0]);
        $("#UpdateBy").val(data[0]);
        $("#RoleName").val("");
        $("#Description").val("");
        $("#IdRole").val(-1);

        $("#CreateDate").val(ConvertDateToString(data[1]));
        $("#UpdateDate").val(ConvertDateToString(data[1]));
        document.getElementById("IsEnable").checked = true;

        $("#RoleName").focus();
    });
}


function EditAjax(id) {


    DoClearMessage();
    var url = basePath + 'Roles/RolesEditAjax/' + id;

    $.getJSON(url, null, function(data) {
        $("#IdRole").val(data.ID);
        $("#RoleName").val(data.RoleName);
        $("#Description").val(data.Description);
        $("#CreateDate").val(data.CreateDateString);
        $("#UpdateDate").val(data.UpdateDateString);
//        $("#CreateDate").val(ConvertDateToString(data.CreateDate));
//        $("#UpdateDate").val(ConvertDateToString(data.UpdateDate));
        $("#CreateBy").val(data.CreateByUser);
        $("#UpdateBy").val(data.UpdateByUser);
        
        if (data.ID != -1) {
            document.getElementById("IsEnable").removeAttribute("disabled");
            //document.getElementById("IsEnableHidden").removeAttribute("disabled");
            //document.getElementById("IsDelete").removeAttribute("disabled");
            //document.getElementById("IsDeleteHidden").removeAttribute("disabled");
        }
        if (data.IsEnable) {
            document.getElementById("IsEnable").checked = true;
            //document.getElementById("IsEnableHidden").checked = true;
        } else {
            document.getElementById("IsEnable").checked = false;
            //document.getElementById("IsEnableHidden").checked = false;
        }
    });
}

function DeleteRole() {
    var roleID = document.forms[0].IdRole.value;
    var roleName = document.forms[0].RoleName.value;
    if (roleID == -1) {
        alert('Chọn Role muốn xóa !');
    }
    else {
        var url = basePath + 'Roles/CheckRolesIsUsedAjax?roleID=' + roleID;
        $.getJSON(url, null, function (data) {
            if (data == true) { // không được xóa Role nếu Role đang được gán cho User
                alert("Không thể xóa. Role '" + roleName + "' đang được hệ thống sử dụng !");
            } else {
                var note = "Bạn chắc chắn muốn xóa Role '" + roleName + "' ?";
                if (confirm(note)) {
                    window.location.href = basePath + "Roles/Delete?roleID=" + roleID;
                }
            }
        });
    }
}

// Search ..............................

function DoSearch() {
    var search = $("#TieuChiSearch").val();
    var value = $("#GiaTriSearch").val();

    document.forms[0].action = basePath + "Roles/List?TimKiem=" + search + "&GiaTri=" + value;
    document.forms[0].method = "post";
    document.forms[0].submit();
}

//...................................

function doOnBlurRoleName() {
    if (!ValidRoleName($("#RoleName").val())) {
        document.getElementById("RoleNameMessage").innerHTML = "Role không đúng định dạng !";
        return false;
    }
    else {
        document.getElementById("RoleNameMessage").innerHTML = "";
    }

    //Kiểm tra Role đã tồn tại
    var url = basePath + 'Roles/IsExistRole?RoleName=' + $("#RoleName").val();
    $.getJSON(url, null, function(data) {
        if (data == true) {
            document.getElementById("RoleNameMessage").innerHTML = "Role đang tồn tại !";
            return false;
        }
        else {
            document.getElementById("RoleNameMessage").innerHTML = "";
        }
    });
}


function DoClearMessage() {
    //Xóa thông điệp cũ khi xử lý tới Department mới

    if (document.getElementById("MessageCreateRoles") != null) {
        document.getElementById("MessageCreateRoles").innerHTML = "";
    }
    if (document.getElementById("MessageEditRoles") != null) {
        document.getElementById("MessageEditRoles").innerHTML = "";
    }
    if (document.getElementById("RoleNameMessage") != null) {
        document.getElementById("RoleNameMessage").innerHTML = "";
    }
    //end
}

//Các hàm hỗ trợ
function ValidRoleName(name) { 
    name = name.replace(/(^\s*)|(\s*$)/g);
    var alphaExp = /^[0-9a-zA-Z]+$/;
    if (name.match(alphaExp)) {
        return true;
    } else {
        return false;
    }
}